package com.dxf.chepter03

/**
 *  Scala提供try catch 处理异常
 *  语法处理和java类似,但是又不尽相同
 *
 *  Scala中只有 运行异常
 *
 *    try{
 *
 *    }catch{       catch只有1个了,case匹配异常名称   => 关键符合,不能改
 *      case ex: Exception1 => xxx
 *      case ex: Exception2 => { xxx }
 *    }finally{
 *
 *    }
 *
 *
 *    throw 关键字抛出一个异常对象,所有异常都是Throwable的子类型
 *    throw 表达式是有类型的,是Nothing(所有类的子类)
 *
 *
 *    ====================
 *
 *
 *    @throws  -->  会抛出的异常
 *
 *
 *
 */
object T39_异常处理 {
  def main(args: Array[String]): Unit = {

   try {
     //val r = 10 / 0
     error()
   } catch {
     case ex: Exception => {println(ex.getMessage())}
   } finally {
     println("2222")
   }





    val value = error()
    println(value)

    println("3333")



  }

  def error(): Nothing ={
    throw new Exception("xxx错误")
  }

  @throws(classOf[NumberFormatException])// 这个f1 会抛出 NumberFormatException异常
  def f1(): Unit ={
    "aaa".toInt
  }

}
